The present invention relates generally to the field of client-server connections, and more particularly to handing a connection between a client and a server that uses multiple pipes.
A client process (e.g., a transaction gateway) can establish a communication link with a server (e.g., a transaction server) to allow the client process to then schedule work on behalf of other clients in that server. Both the client and server processes act as nodes at either end of a network connection. The network connection between a pair of nodes is often referred to as a network pipe and the nodes then use pipe handler objects to either attempt to open a pipe to a remote node, or to respond to the arrival of a connection attempt from another node. The connection can consist of multiple pipes to allow a greater volume of concurrent requests to be scheduled. Each pipe is started with a connection message being sent from the client to the server, and then ends when the server has completed its handling of the request and returned a response message over the newly established pipe. The connection is not fully established until all of the required pipes have been opened. In some instances, where the request is not successfully delivered, the connection between the client and the server is left partially created.